package model

type LinkRequest struct {
	ID     uint   `json:"id"`     //
	Name   string `json:"name"`   // 链接名
	URL    string `json:"url"`    // 链接地址
	Avatar string `json:"avatar"` // 链接图标
	Status uint   `json:"status"` // 状态
}

type LinkResponse struct {
	ID         uint   `json:"id"`         //
	Name       string `json:"name"`       // 链接名
	URL        string `json:"url"`        // 链接地址
	Avatar     string `json:"avatar"`     // 链接图标
	CreateTime string `json:"createTime"` // 创建时间
	UpdateTime string `json:"updateTime"` // 更新时间
	DeleteTime string `json:"deleteTime"` // 删除时间
	Status     uint   `json:"status"`     // 状态
}

type LinkResponsePage struct {
	List []LinkResponse `json:"datalist"`
	Page Page           `json:"page"`
}

func (linkRequest LinkRequest) Convert() Link {
	return Link{
		Name:   linkRequest.Name,
		Url:    linkRequest.URL,
		Avatar: linkRequest.Avatar,
		Status: linkRequest.Status,
	}

}
func (*LinkResponse) Convert(link *Link) *LinkResponse {
	return &LinkResponse{
		ID:         link.Id,
		Name:       link.Name,
		URL:        link.Url,
		Avatar:     link.Avatar,
		CreateTime: link.CreateTime.String(),
		UpdateTime: link.UpdateTime.String(),
		DeleteTime: link.DeleteTime.String(),
		Status:     link.Status,
	}
}

func (Link) Convert(link []Link) []LinkResponse {
	var links = make([]LinkResponse, len(link))
	for i := range link {
		links[i] = *(links[i].Convert(&link[i]))
	}
	return links
}
func (Link) ConvertPage(link []Link, page Page) LinkResponsePage {
	var links = make([]LinkResponse, len(link))
	for i := range link {
		links[i] = *(links[i].Convert(&link[i]))
	}
	return LinkResponsePage{
		List: links,
		Page: page,
	}
}
